//#include<iostream>
//using namespace std;
//
//const int N=2e5+10;
//long long arr[N];
//
//int main()
//{
//	int n; cin>>n;
//	long long ret=-1e6;
//	long long minprev=0;
//	for(int i=1; i<=n; i++)
//	{
//		long long x; cin>>x;
//		arr[i]=x+arr[i-1];
//	}
//	for(int i=1; i<=n; i++)
//	{
//		ret=max(ret, arr[i]-minprev);
//		minprev=min(minprev, arr[i]);
//	}
//	cout<<ret;
//	return 0;
//}
#include<iostream>
using namespace std;

const int N=2e5+10;
long long arr[N];

int main()
{
	int n; cin>>n;
	long long ret=-1e5;
	for(int i=1; i<=n; i++)
	{
		int x; cin>>x;
		if(arr[i-1]<=0) arr[i]=x;
		else arr[i]=arr[i-1]+x; 
		ret=max(ret, arr[i]);
	}
	cout<<ret;
	return 0;
}
